package com.ruoyi.iot.enums;

import lombok.Getter;
import lombok.Setter;

/**
 * Kuiper类型对照关系
 *
 * @author Howe
 * @since 2025/7/19 11:40
 **/
public enum EKuiperTypeContrastEnum {

    INT("int", "bigint"),
    FLOAT("float", "float"),
    DOUBLE("double", "float"),
    TEXT("text", "string"),
    DATE("date", "bigint"),
    BOOL("bool", "bigint"),
    ENUM("enum", "bigint"),
    STRUCT("struct", "struct"),
    ARRAY("array", "array");
    /**
     * 属性类型: int（原生）、
     * float（原生）、
     * double（原生）、
     * text（原生）、
     * date（String类型UTC毫秒）、
     * bool（0或1的int类型）、
     * enum（int类型，枚举项定义方法与bool类型定义0和1的值方法相同）、
     * struct（结构体类型，可包含前面7种类型，下面使用"specs":[{}]描述包含的对象）、
     * array（数组类型，支持int、double、float、text、struct）
     */
    @Getter
    @Setter
    private String type;


    @Getter
    @Setter
    private String ekuiperType;


    /**
     * 构造方法
     *
     * @param type        Kuiper类型,
     * @param ekuiperType Kuiper类型
     * @author Howe
     * @since 2025/7/19 11:56
     **/
    EKuiperTypeContrastEnum(String type, String ekuiperType) {
        this.type = type;
        this.ekuiperType = ekuiperType;
    }


    /**
     * @param type 字段类型
     * @return 类型对应的Kuiper类型
     * @author Howe
     * @since 2025/7/19 11:54
     **/
    public static String getEKuiperType(String type) {
        for (EKuiperTypeContrastEnum k : EKuiperTypeContrastEnum.values()) {
            if (k.getType() == type) {
                return k.ekuiperType;
            }
        }
        return null;
    }


}
